package pe.gob.osce.sirenas.dao.convert;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;







import pe.gob.osce.sirenas.model.DocenciaDTO;
import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.Docencia;
import pe.gob.osce.sirenas.model.jpa.Fiscalizacion;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaDocencia;
import pe.gob.osce.sirenas.model.jpa.rectificaciones.HistorialDocencia;

public class DocenciaConvert {

	public DocenciaConvert(){}
	
	public static Docencia createJPA(DocenciaDTO docenciaDTO, Auditoria auditoria)
	{
		Docencia objetoJPA= new Docencia();
	
		
		objetoJPA.setIdDocencia(docenciaDTO.getIdDocencia());
		objetoJPA.setIdFicha(docenciaDTO.getIdFicha());
		objetoJPA.setIndEspecialidad(docenciaDTO.getIndEspecialidad());
		objetoJPA.setIdCentroEstudios(docenciaDTO.getIdCentroEstudios());
		objetoJPA.setIndTipoActividad(docenciaDTO.getIndTipoActividad());
		objetoJPA.setDescripcionCurso(docenciaDTO.getDescripcionCurso());
		objetoJPA.setDuracion(docenciaDTO.getDuracion());
		objetoJPA.setIndTipoDuracion(docenciaDTO.getIndTipoDuracion());
		objetoJPA.setCodTramite(docenciaDTO.getCodTramite());
		objetoJPA.setCodRegistro(docenciaDTO.getCodRegistro());
		objetoJPA.setEstado(docenciaDTO.getEstado());
		objetoJPA.setAuditoria(auditoria);
		
		return objetoJPA;
		
	}
	
	public static DocenciaDTO createDTO(Docencia docenciaJPA)
	{
		DocenciaDTO objetoDTO= new DocenciaDTO();
		
		objetoDTO.setIdDocencia(docenciaJPA.getIdDocencia());
		objetoDTO.setIdFicha(docenciaJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(docenciaJPA.getIndEspecialidad());
		objetoDTO.setIdCentroEstudios(docenciaJPA.getIdCentroEstudios());
		objetoDTO.setIndTipoActividad(docenciaJPA.getIndTipoActividad());
		objetoDTO.setDescripcionCurso(docenciaJPA.getDescripcionCurso());
		objetoDTO.setDuracion(docenciaJPA.getDuracion());
		objetoDTO.setIndTipoDuracion(docenciaJPA.getIndTipoDuracion());
		objetoDTO.setCodTramite(docenciaJPA.getCodTramite());
		objetoDTO.setCodRegistro(docenciaJPA.getCodRegistro());
		objetoDTO.setEsEditable(false);
		objetoDTO.setEstado(docenciaJPA.getEstado());
		
		
		return objetoDTO;
		
	}
	

	public static DocenciaDTO createDocenciaFiscalizadaDTO(Docencia docenciaJPA,FiscalizaDocencia fiscalizaDocenciaJPA)
	{
		DocenciaDTO objetoDTO= new DocenciaDTO();
		
		objetoDTO.setIdDocencia(docenciaJPA.getIdDocencia());
		objetoDTO.setIdFicha(docenciaJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(docenciaJPA.getIndEspecialidad());
		objetoDTO.setIdCentroEstudios(docenciaJPA.getIdCentroEstudios());
		objetoDTO.setIndTipoActividad(docenciaJPA.getIndTipoActividad());
		objetoDTO.setDescripcionCurso(docenciaJPA.getDescripcionCurso());
		objetoDTO.setDuracion(docenciaJPA.getDuracion());
		objetoDTO.setIndTipoDuracion(docenciaJPA.getIndTipoDuracion());
		objetoDTO.setCodTramite(docenciaJPA.getCodTramite());
		objetoDTO.setCodRegistro(docenciaJPA.getCodRegistro());
		objetoDTO.setEsEditable(false);
		objetoDTO.setEstado(docenciaJPA.getEstado());
		
		objetoDTO.setDescAccion(fiscalizaDocenciaJPA.getDescAccion() );
		objetoDTO.setDescResultado(fiscalizaDocenciaJPA.getDescResultado() );
		
		return objetoDTO;
		
	}
	
	public static List<DocenciaDTO> createListDTO(List<Docencia> listaDocenciaJPA){
	
	List<DocenciaDTO> listaObjetoDTO=new ArrayList<DocenciaDTO>();
	DocenciaDTO objetoDTO;

	for (Docencia docenciaJPA: listaDocenciaJPA) {
		objetoDTO= new DocenciaDTO();

		objetoDTO.setIdDocencia(docenciaJPA.getIdDocencia());
		objetoDTO.setIdFicha(docenciaJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(docenciaJPA.getIndEspecialidad());
		objetoDTO.setIdCentroEstudios(docenciaJPA.getIdCentroEstudios());
		objetoDTO.setIndTipoActividad(docenciaJPA.getIndTipoActividad());
		objetoDTO.setDescripcionCurso(docenciaJPA.getDescripcionCurso());
		objetoDTO.setDuracion(docenciaJPA.getDuracion());
		objetoDTO.setIndTipoDuracion(docenciaJPA.getIndTipoDuracion());
		objetoDTO.setCodTramite(docenciaJPA.getCodTramite());
		objetoDTO.setCodRegistro(docenciaJPA.getCodRegistro());
		objetoDTO.setEsEditable(false);
		objetoDTO.setEstado(docenciaJPA.getEstado());
		listaObjetoDTO.add(objetoDTO);
	}
	
	return listaObjetoDTO;
	
	}
	
	public static List<Docencia> createListJPA(List<DocenciaDTO> listDocenciaDTO, Auditoria auditoria)
	{
		List<Docencia> listaObjetoJPA=new ArrayList<Docencia>();
		Docencia objetoJPA;
		for (DocenciaDTO docenciaDTO: listDocenciaDTO) {
			objetoJPA= new Docencia();
			objetoJPA.setIdDocencia(docenciaDTO.getIdDocencia());
			objetoJPA.setIdFicha(docenciaDTO.getIdFicha());
			objetoJPA.setIndEspecialidad(docenciaDTO.getIndEspecialidad());
			objetoJPA.setIdCentroEstudios(docenciaDTO.getIdCentroEstudios());
			objetoJPA.setIndTipoActividad(docenciaDTO.getIndTipoActividad());
			objetoJPA.setDescripcionCurso(docenciaDTO.getDescripcionCurso());
			objetoJPA.setDuracion(docenciaDTO.getDuracion());
			objetoJPA.setIndTipoDuracion(docenciaDTO.getIndTipoDuracion());
			objetoJPA.setCodTramite(docenciaDTO.getCodTramite());
			objetoJPA.setCodRegistro(docenciaDTO.getCodRegistro());
			objetoJPA.setEstado(docenciaDTO.getEstado());
			objetoJPA.setAuditoria(auditoria);
			listaObjetoJPA.add(objetoJPA);
		}
		return listaObjetoJPA;
		
	}
	
	public static List<HistorialDocencia> createListHistorialDocenciaJPA(List<Docencia> listDocencia, Auditoria auditoria)
	{
		List<HistorialDocencia> listaObjetoHistorialJPA=new ArrayList<HistorialDocencia>();
		HistorialDocencia objetoHistorialJPA;
		for (Docencia docenciaJPA: listDocencia) {
			objetoHistorialJPA= new HistorialDocencia();
			objetoHistorialJPA.setFecHistorial(new Date());
			objetoHistorialJPA.setIdDocencia(docenciaJPA.getIdDocencia());
			objetoHistorialJPA.setIdFicha(docenciaJPA.getIdFicha());
			objetoHistorialJPA.setIndEspecialidad(docenciaJPA.getIndEspecialidad());
			objetoHistorialJPA.setIdCentroEstudios(docenciaJPA.getIdCentroEstudios());
			objetoHistorialJPA.setIndTipoActividad(docenciaJPA.getIndTipoActividad());
			objetoHistorialJPA.setDescripcionCurso(docenciaJPA.getDescripcionCurso());
			objetoHistorialJPA.setDuracion(docenciaJPA.getDuracion());
			objetoHistorialJPA.setIndTipoDuracion(docenciaJPA.getIndTipoDuracion());
			objetoHistorialJPA.setCodTramite(docenciaJPA.getCodTramite());
			objetoHistorialJPA.setCodRegistro(docenciaJPA.getCodRegistro());
			objetoHistorialJPA.setEstado(docenciaJPA.getEstado());
			objetoHistorialJPA.setAuditoria(auditoria);
			listaObjetoHistorialJPA.add(objetoHistorialJPA);
		}
		return listaObjetoHistorialJPA;
		
	}
	
	public static List<DocenciaDTO> createListHistorialDocenciaDTO(List<HistorialDocencia> listaHistorialDocenciaJPA){
		
		List<DocenciaDTO> listaObjetoDTO=new ArrayList<DocenciaDTO>();
		DocenciaDTO objetoDTO;

		for (HistorialDocencia docenciaHistorialJPA: listaHistorialDocenciaJPA) {
			objetoDTO= new DocenciaDTO();
			objetoDTO.setIdHistorial(docenciaHistorialJPA.getIdHistorial());
			objetoDTO.setFecHistorial(docenciaHistorialJPA.getFecHistorial());
			objetoDTO.setIdDocencia(docenciaHistorialJPA.getIdDocencia());
			objetoDTO.setIdFicha(docenciaHistorialJPA.getIdFicha());
			objetoDTO.setIndEspecialidad(docenciaHistorialJPA.getIndEspecialidad());
			objetoDTO.setIdCentroEstudios(docenciaHistorialJPA.getIdCentroEstudios());
			objetoDTO.setIndTipoActividad(docenciaHistorialJPA.getIndTipoActividad());
			objetoDTO.setDescripcionCurso(docenciaHistorialJPA.getDescripcionCurso());
			objetoDTO.setDuracion(docenciaHistorialJPA.getDuracion());
			objetoDTO.setIndTipoDuracion(docenciaHistorialJPA.getIndTipoDuracion());
			objetoDTO.setCodTramite(docenciaHistorialJPA.getCodTramite());
			objetoDTO.setCodRegistro(docenciaHistorialJPA.getCodRegistro());
			objetoDTO.setEsEditable(false);
			objetoDTO.setEstado(docenciaHistorialJPA.getEstado());
			listaObjetoDTO.add(objetoDTO);
		}
		
		return listaObjetoDTO;
		
		}
	
}
